package caralibrobd;

//<editor-fold defaultstate="collapsed" desc="Importaciones">
import java.io.Serializable;
import java.util.HashMap;
//</editor-fold>

//<editor-fold defaultstate="expanded" desc="Clase CaraLibroBD">
/**
 *
 * @author yaiza y merce
 */
public class CaraLibroBD implements Serializable {

    //<editor-fold defaultstate="collapsed" desc="Declaración de atributos">
    /**
     *
     */
    private static HashMap<String, Perfil> perfiles = new HashMap<>();
    //</editor-fold>

    //<editor-fold defaultstate="collapsed" desc="Métodos HashMap set/get">
    /**
     * Devuelve el HashMap con todos los perfiles existentes.
     *
     * @return Devuelve un HashMap<String, Perfil>.
     */
    public static HashMap<String, Perfil> getPerfiles() {
        return perfiles;
    }

    /**
     *
     *
     * @param aPerfil el perfil para asignar.
     */
    public static void setPerfiles(HashMap<String, Perfil> aPerfil) {
        perfiles = aPerfil;
    }
    //</editor-fold>

    //<editor-fold defaultstate="expanded" desc="Acciones HashMap  Perfil (engadir, obter, buscar">
    /**
     * Obtiene el perfil del usuario una vez autentifico.
     *
     * @param nome        Nome do perfil.
     * @param contrasinal Contrasinal do perfil.
     * @return
     */
    public static Perfil obterPerfil(String nome, String contrasinal) {
        if (perfiles.containsKey(nome)) {
            if (perfiles.get(nome).getContrasinal().equals(contrasinal)) {
                return perfiles.get(nome);
            }
        }
        return null;
    }

    /**
     * Busca en todos los perfiles por el Valor del HashMap.
     *
     * @param nome Contiene el valor por el que se realiza la búsqueda.
     * @return
     */
    public static Perfil buscarPerfil(String nome) {
        if (perfiles.containsKey(nome)) {
            return perfiles.get(nome);
        }
        return null;
    }

    /**
     * Añade perfiles.
     *
     * @param aPerfil Contiene los datos del perfil a añadir.
     */
    public static void engadirPerfil(Perfil aPerfil) {
        String key;
        key = aPerfil.getNome().toString();
        if (perfiles == null) {
            perfiles = new HashMap<>();
            perfiles.put(key, aPerfil);
        } else {
            if (!perfiles.containsKey(key)) {
                perfiles.put(key, aPerfil);
            }
        }
    }

    /**
     *
     * @return
     */
    public static int totalPerfiles() {
        if (perfiles == null) {
            return 0;
        } else {
            return perfiles.size();
        }
    }

    //</editor-fold>

//</editor-fold>
}
//</editor-fold>
